Potential fix for code scanning alert no. 5: Clear-text logging of sensitive information#31
Merged
Potential fix for code scanning alert no. 5: Clear-text logging of sensitive information#31
Conversation
…nsitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/erseco/python-moodle/security/code-scanning/5
In general, to fix clear-text logging of sensitive information, you should ensure that any data structures logged do not contain secrets (passwords, tokens, etc.). Instead of copying and mutating a dict that was built with sensitive data, construct a separate redacted structure or log only selected non-sensitive fields.
In this case, the best fix with minimal behavior change is to avoid copying the tainted
payloaddict when logging and instead build a separateredacted_payloadthat includes only the non-sensitive fields (username,execution,_eventId) plus a fixed redacted placeholder forpassword. This keeps debugging usefulness (you still see what is being sent structurally) while guaranteeing that the original password value never flows into the logged object. We only need to adjust the_cas_loginmethod insrc/py_moodle/auth.py; the existing imports remain sufficient, and no helper methods are required.Concretely:
MoodleAuth._cas_login, replace:with code that constructs
redacted_payloadfrom scratch, e.g.:or equivalently just log a subset of fields, as long as the password never appears. No changes are needed in
tests/conftest.py, since the leakage occurs in theauthmodule’s logging.Suggested fixes powered by Copilot Autofix. Review carefully before merging.